// 定义校验规则
import { z } from 'zod';

// **鉴权校验规则
// 登录
export function loginSchema(params: any) {
    return z.object({
        username: z.string({
            required_error: "用户名是必填项",
            invalid_type_error: "用户名必须是字符串"
        }).min(3).max(20),
        password: z.string({
            required_error: "密码是必填项",
            invalid_type_error: "密码必须是字符串"
        }).min(6, { message: "密码长度不能小于6" }).max(20, { message: "密码长度不能大于20" }),
    }).parse(params)
}

// **主体校验规则
// 新增 
export function createSubjectSchema(params: any) {
    return z.object({
        name: z.string({
            required_error: "名称是必填项",
            invalid_type_error: "名称必须是字符串"
        }),
        address: z.string({
            required_error: "地址是必填项",
            invalid_type_error: "地址必须是字符串"
        }),
    }).parse(params)
}
// 更新
export function updateSubjectSchema(params: any) {
    return z.object({
        id: z.string().min(1),
        name: z.string().min(3).max(20),
        address: z.string().min(6).max(20),
    }).parse(params)
}

// **用户校验规则
// 新增
export function createUserSchema(params: any) {
    return z.object({
        username: z.string().min(3).max(20),
        password: z.string().min(6).max(20),
    }).parse(params)
}
// 更新
export function updateUserSchema(params: any) {
    return z.object({
        id: z.string().min(1),
        username: z.string().min(3).max(20),
        password: z.string().min(6).max(20),
    }).parse(params)
}

